The present invention is related generally to wireless communication devices, and more particularly, to a system and method for independently downloading features into a memory location of a wireless communication device.
Modem wireless communication devices, such as cellular telephones, are very popular because they are convenient to use and provide many features and options that are difficult to implement on conventional telephones. For example, a wireless communication device can be programmed and customized with the specific dialing plans and dialing patterns for a particular country. In this fashion, wireless communication devices can be mass-produced for export to a foreign country and ready to use immediately without additional programming. For the United States, a wireless communication device can be programmed to accommodate 10-digit telephone numbers of the North American Numbering Plan and the xe2x80x9cstarxe2x80x9d codes used to activate numerous options available in the telephone carrier""s system.
A wireless communication device can be further programmed for operation with data encryption schemes, for operation with foreign language text, and to allow its user to play computerized wireless games. These features can be implemented in various combinations in each wireless communication device to provide the user with several customized features.
The optional features discussed above are pre-programmed into the wireless communication device by its manufacturer during the production process. The data and executable code/instructions that are associated with and that operate each of these optional features are combined with the standard data and executable code/instructions (i.e., the main program) that control the operation of the wireless communication device. The combined program is then written into an electronically erasable read-only-memory (EEPROM) of the wireless communication device. That is, the optional features and the main program are both written or downloaded into the EEPROM as a single program and at the same time. Other forms of writeable non-volatile storage may also be used (e.g., FERAM, battery-backed RAM, OPT RAM, etc.).
There are several significant disadvantages to utilizing a single download. First, because the main program and the optional features need to be downloaded as a single program, the manufacturer has to predetermine which optional features will be required by the wireless communication device, and then assimilate the optional features into the main program. This method is undesirable because it is often difficult to predict which optional features will be requested by a given customer, and it is an inefficient use of memory space to account for every optional feature by combining all possible optional features with the main program.
Second, because the optional features and the main program are combined and downloaded together, additional optional features cannot be added to the EEPROM after the initial download is made. If the manufacturer desires to add additional optional features to the wireless communication device, then the entire EEPROM needs to be erased or replaced, with the updated combination of the optional features and the main program being subsequently downloaded into a new blank EEPROM. Also, because the optional features are bound to the main program as a single combined program, portions of the main program itself may need to be updated each time the manufacturer simply wants to add a single optional feature. Obviously, this updating has to be done before the combined program is downloaded into the EEPROM, because conventional systems cannot update the combined program once it is downloaded.
Third, the large block of information resulting from combining the optional features with the main program may inherently make downloading more difficult. A single continuous storage block of the EEPROM may need to be pre-allocated to accommodate the entire block of downloaded information. It is possible that the block of downloaded information cannot be separated into portions which are then stored at scattered storage blocks of the EEPROM. For instance, it may be desirable in some instances to write the main program into one storage block of the EEPROM and then write the optional features into wherever other scattered storage blocks of the EEPROM are available.
Accordingly, there exists a need to be able to customize a wireless communication device with optional features in a manner such that the optional features can be downloaded into the EEPROM independent of the downloading of the main program. The present invention provides solutions to the problems described above as will be apparent from the following detailed description and accompanying figures.
The present invention is embodied in a system and method for downloading optional features into a memory of a wireless communication device. In an exemplary embodiment, the wireless communication device comprises the memory to store a main program to control operation of the wireless communication device. A set of selectable optional features is programmable into the memory independently of the main program. The main program uses identification elements associated with the set, or sets, of selectable optional features to interact with the selected set of selectable optional features.
An exemplary embodiment further includes a linking element to also associate the main program to the set of selectable optional features, the linking element being inactive until the set of selectable optional features is programmed into the memory. The linking element can be a portion of the main program and can include a plurality of pointers to identify a plurality of corresponding storage locations in the memory. The main program can also include a searching program to search the memory for a storage location corresponding to the set of selectable optional features, the storage location having an indicator to indicate when the set of selectable optional features is stored in the storage location.
The linking element can also include a pointer identifying a secondary linking element, the secondary linking element having a plurality of pointers to identify a corresponding plurality of storage locations in the memory. In exemplary embodiments of the invention, the set of selectable optional features can also include the secondary linking element or a pointer to identify a storage location in the memory.
A programmer and a port coupled to the memory receives the set of selectable optional features. The programmer sends the set of selectable optional features to the port for storage in the programmable memory independent of a storing of the main program. The set of selectable optional features could include features such as a dialing plan system, encryption system, browser system, or a language system, or diagnostic extensions and alterations, system management, selection and presentation extensions and alterations, and audio handling extensions and alterations, productivity tools, and games.